//package edu.hubu.supermarketmanagementsystem.service.impl;
//
//import edu.hubu.supermarketmanagementsystem.entity.ProductFile;
//import edu.hubu.supermarketmanagementsystem.mapper.ProductFileMapper;
//import edu.hubu.supermarketmanagementsystem.vo.ResultVO;
//import org.junit.jupiter.api.BeforeEach;
//import org.junit.jupiter.api.Test;
//import org.junit.jupiter.api.extension.ExtendWith;
//import org.mockito.InjectMocks;
//import org.mockito.Mock;
//import org.mockito.junit.jupiter.MockitoExtension;
//
//import java.math.BigDecimal;
//import java.util.Date;
//import java.util.Arrays;
//import java.util.List;
//
//import static org.junit.jupiter.api.Assertions.*;
//import static org.mockito.Mockito.*;
//
//@ExtendWith(MockitoExtension.class)
//class ProductFileServiceImplTest {
//
//    @Mock
//    private ProductFileMapper productFileMapper;
//
//    @InjectMocks
//    private ProductFileServiceImpl productFileService;
//
//    private ProductFile productFile;
//
//    @BeforeEach
//    void setUp() {
//        productFile = new ProductFile();
//        productFile.setProductRecordId(1);
//        productFile.setProductId(1);
//        productFile.setProductName("Test Product File");
//        productFile.setPurchasePrice(BigDecimal.valueOf(5.0));
//        productFile.setPrice(BigDecimal.valueOf(10.0));
//        productFile.setDateOfUse(new Date());
//    }
//
//    @Test
//    void insertProductFileTest() {
//        // 模拟插入商品档案，并验证返回结果
//        doNothing().when(productFileMapper).insertProductFile(productFile);
//        ResultVO<String> result = productFileService.insertProductFile(productFile);
//        assertEquals(200, result.getCode());
//        assertEquals("Success", result.getMsg());
//    }
//
//    @Test
//    void getProductFileByIdTest() {
//        // 模拟根据商品档案ID查询商品档案，并验证返回结果
//        when(productFileMapper.selectById(1)).thenReturn(productFile);
//        ResultVO<ProductFile> result = productFileService.getProductFileById(1);
//        assertEquals(200, result.getCode());
//        assertNotNull(result.getData());
//        assertEquals("Test Product File", result.getData().getProductName());
//    }
//
//    @Test
//    void getAllProductFilesTest() {
//        // 模拟查询所有商品档案，并验证返回结果
//        List<ProductFile> productFileList = Arrays.asList(productFile);
//        when(productFileMapper.selectAll()).thenReturn(productFileList);
//        ResultVO<List<ProductFile>> result = productFileService.getAllProductFiles();
//        assertEquals(200, result.getCode());
//        assertNotNull(result.getData());
//        assertEquals(1, result.getData().size());
//    }
//
//    @Test
//    void updateProductFileTest() {
//        // 模拟更新商品档案，并验证返回结果
//        doNothing().when(productFileMapper).updateProductFile(productFile);
//        ResultVO<String> result = productFileService.updateProductFile(productFile);
//        assertEquals(200, result.getCode());
//        assertEquals("Success", result.getMsg());
//    }
//
//    @Test
//    void deleteProductFileByIdTest() {
//        // 模拟删除商品档案，并验证返回结果
//        doNothing().when(productFileMapper).deleteProductFileById(1);
//        ResultVO<String> result = productFileService.deleteProductFileById(1);
//        assertEquals(200, result.getCode());
//        assertEquals("Success", result.getMsg());
//    }
//
//    @Test
//    void getProductFileByProductIdTest() {
//        // 模拟根据商品ID查询商品档案，并验证返回结果
//        when(productFileMapper.selectByProductId(1)).thenReturn(productFile);
//        ResultVO<ProductFile> result = productFileService.getProductFileByProductId(1);
//        assertEquals(200, result.getCode());
//        assertNotNull(result.getData());
//        assertEquals("Test Product File", result.getData().getProductName());
//    }
//
//    @Test
//    void searchProductFileByNameTest() {
//        // 模拟根据商品名称模糊查询商品档案，并验证返回结果
//        List<ProductFile> productFileList = Arrays.asList(productFile);
//        when(productFileMapper.searchByProductName("Test")).thenReturn(productFileList);
//        ResultVO<List<ProductFile>> result = productFileService.searchProductFileByName("Test");
//        assertEquals(200, result.getCode());
//        assertNotNull(result.getData());
//        assertEquals(1, result.getData().size());
//    }
//}
